﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AdatbazisProjekt
{
    public partial class TermekKeresesForm : Form
    {
		// Termekekre vonatkozo szueresek lekerdezeseket eladast es modositast bonyolithatjuk a feluletrol
        private FMenu fMenu;
        private DataTermekKereses termekAdatok;
        private bool Err;
        private string regiNev;
        private string regiAr;
        private string regikategoria;
        private string regiGyarto;
        private string regiGarancia;
        private List<ListViewItem> bevasarloLista = new List<ListViewItem>();


        public TermekKeresesForm(FMenu f)
        {
			
            InitializeComponent();
            fMenu = f;
			List<String> alkatreszek = new List<string>();
			alkatreszek.Add("Processzorok");
			alkatreszek.Add("Merevlemezek");
			alkatreszek.Add("Videokartyak");
			alkatreszek.Add("Ram");
			alkatreszek.Add("Kepernyo");
			AlkatreszComboBox.DataSource = alkatreszek;
			AlkatreszComboBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
			AlkatreszComboLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
        }

        private void FTermekKereses_Load(object sender, EventArgs e)
        {
			
            termekAdatok = new DataTermekKereses(ref Err);
            if (Err)
            {
                MessageBox.Show("Hiba tortent az termekek tabla olvasas kozben!");
            }
            feltolt(termekAdatok.GetTermekInf());
            kategoriaComboFeltolt();
            if (Controller.Usertype == 3) 
            {
                ModositasButton.Hide();
                EladasButton.Text="Megveszem";
            }
        }

        private void bMenuVissza_Click(object sender, EventArgs e)
        {
			// Visszalepunk a fomenube
            fMenu.Show();
            this.Close();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (ArTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int32.Parse(ArTextBox.Text);
                    feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
                    ArTextBox.Text = "";
                }
            }
            else feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));                        // ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
        }

        private void garancia_TextBox_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (GaranciaTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int16.Parse(GaranciaTextBox.Text);
                    feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));                        // ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    GaranciaTextBox.Text = "";
                }
            }
            else feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));                        // ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
        }

        public void feltolt(List<Termek> termek)
        {
			// Feltoltjuk a ListView-t a termekekre vonatkozo adattokal szures nelkul
            TermekeklistView.Items.Clear();
            for (int i = 0; i < termek.Count; i++)
            {
                ListViewItem item = new ListViewItem(termek[i].TermekNev);
                item.SubItems.Add(termek[i].Kategoria);
                item.SubItems.Add(termek[i].Gyarto);
                item.SubItems.Add(termek[i].Ar.ToString());
                item.SubItems.Add(termek[i].Garancia.ToString());
                item.SubItems.Add(termek[i].Darabszam.ToString());

                TermekeklistView.Items.Add(item);
            }
        }

        private void termekNevTextBox_TextChanged(object sender, EventArgs e)
        {
			// Amennyiben az obijektum erteke valtozik ujra toltjuk a LIstvViewt az uj szuresnek megfeleloen
            feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));
        }

        private void kategoriaComboFeltolt()
        {
			// Amennyiben az obijektum erteke valtozik ujra toltjuk a LIstvViewt az uj szuresnek megfeleloen
            KategoriaComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            KategoriaComboBox.DataSource = termekAdatok.GetKategoriak();
        }

        private void KategoriaComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
			// Amennyiben az obijektum erteke valtozik ujra toltjuk a LIstvViewt az uj szuresnek megfeleloen
            feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));
        }

        private void GyartoTextBox_TextChanged(object sender, EventArgs e)
        {	
			// Amennyiben az obijektum erteke valtozik ujra toltjuk a LIstvViewt az uj szuresnek megfeleloen
            feltolt(termekAdatok.GetTermekKeresInf(termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoTextBox.Text, ArTextBox.Text, GaranciaTextBox.Text));
        }

        private void EladasButton_Click_1(object sender, EventArgs e)
        {
			//Amennyiben el szeretnenk adni egy termeket es abbol van is jelenleg a raktaron akkor megjelenik egy uj form melyrol ezt lebonyolithatjuk
            ListViewItem item = TermekeklistView.FocusedItem;
            if (Convert.ToInt32(item.SubItems[5].Text) > 0)
            {
                EladasForm temp = new EladasForm(TermekeklistView.FocusedItem.SubItems[0].Text, TermekeklistView.FocusedItem.SubItems[3].Text, this);
                temp.Show();
            }
            else
            {
                MessageBox.Show("Hiba! ebbol a termekbol jelenleg nincs elerheto darab raktaron!");
            }

        }

        private void ModositasButton_Click(object sender, EventArgs e)
        {
			// Modositas gombra kattintva megvatoznak a feluleten levo obijektumok elerhetosegei
            MentesButton.Visible = true;
            MegseButton.Visible = true;
            RaktarTextBox.Enabled = true;
            regiNev = null;
            ListViewItem item = TermekeklistView.FocusedItem;
            regiNev = item.SubItems[0].Text;
            regikategoria = item.SubItems[1].Text;
            regiGyarto = item.SubItems[2].Text;
            regiGarancia = item.SubItems[4].Text;
            termekNevTextBox.Text = regiNev;
            KategoriaComboBox.SelectedIndex = KeresKategoria(item.SubItems[1].Text);
            GyartoFeltolt(item.SubItems[2].Text);
            regiAr = item.SubItems[3].Text;
            ArTextBox.Text = item.SubItems[3].Text;
            GaranciaTextBox.Text = item.SubItems[4].Text;
            RaktarTextBox.Text = item.SubItems[5].Text;
        }

        private int KeresKategoria(string nev)
        {
			// Ki keres egy adott kategoriat a neve szerint es  visszateriti az indexet
            List<String> kategoriak = termekAdatok.GetKategoriak();
            for (int i = 0; i < kategoriak.Count; i++)
            {
                if (nev == kategoriak[i])
                    return i;
            }
            return -1;
        }

        private void GyartoFeltolt( String gyartoNev )
        {
			// Feltolti a gyartokat tartalmazo combot
            Boolean run = true;
            GyartoComboBox.Visible = true;
            GyartoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            List<String> gyartok = termekAdatok.GetGyartok();
            GyartoComboBox.DataSource = gyartok;
            for (int i = 0; i < gyartok.Count && run ; i++)
            {
                if (gyartok[i] == gyartoNev)
                {
                    GyartoComboBox.SelectedIndex = i;
                }
            }
        }

        private void MegseButton_Click(object sender, EventArgs e)
        {
			// Toroli a kitoltott mezok tartalmat es nem vegzi el a modositast az adatbazison
            GyartoComboBox.Visible = false;
            termekNevTextBox.Text = "";
            KategoriaComboBox.SelectedIndex = 0;
            GyartoTextBox.Text = "";
            ArTextBox.Text = "";
            GaranciaTextBox.Text = "";
            RaktarTextBox.Text = "";
            RaktarTextBox.Enabled = false;
            MentesButton.Visible = false;
            MegseButton.Visible = false;

        }

        private void MentesButton_Click(object sender, EventArgs e)
        {
			// Elvegzi a  kivant modositasokat az adatbazisban
            Err = false;
            termekAdatok.TermekAdatFrissit(regiNev,regikategoria,regiGyarto,regiGarancia, regiAr, termekNevTextBox.Text, KategoriaComboBox.SelectedItem.ToString(), GyartoComboBox.SelectedItem.ToString(), ArTextBox.Text, GaranciaTextBox.Text, RaktarTextBox.Text, ref Err);
            if (!Err)
            {
                this.feltolt(termekAdatok.GetTermekInf());
            }
            else
            {
                MessageBox.Show("Hiba a termek adatainak frissitese kozben!");
            }
            MegseButton_Click(sender,e);
        }

        private void button2_Click(object sender, EventArgs e)
        {
			// Megjeleniti a termekre vonatkozo reszeleteket egy uj formon
            ReszletekForm Temp = new ReszletekForm(TermekeklistView.FocusedItem.SubItems[0].Text);
            Temp.Show();
        }

        private void RaktarTextBox_TextChanged(object sender, EventArgs e)
        {
			// Raktaron levo termekek szama szerinti szurest vegzi
            try
            {
                if (GaranciaTextBox.Text != "")
                {
                    long temp = Convert.ToInt64(GaranciaTextBox.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Hiba ebbe a mezobe kizarolag szamokat irhat! Kerem probalja ujra nagyobb figyelemmel.");
                GaranciaTextBox.Text = "";
            }
        }

		private void label9_Click(object sender, EventArgs e)
		{

		}

		private void AlkatreszSzerintKeresCheckBox_CheckedChanged(object sender, EventArgs e)
		{	
			// Az alkatreszek szerinti szureshez szukseges megzok megjeleniteset es elrejteset vegzo metodus
			try
			{
				ProcesszorNevLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorMagSzamLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorSzalSzamLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorTeljesitmenyLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				MerevlemezNevLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				MerevlemezKapacitasLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				VideokartyaNevLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				VideokartyaTeljesitmenyLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamNevLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamTipusLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamMeretLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				KepernyoNevLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				KepernyoAtmeroLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorNevTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorTeljesitmenyTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorMagSzamTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				ProcesszorSzalSzamTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				MerevlemezNevTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				MerevlemezKapacitasTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				VideokartyaNevTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				VideoKartyaTeljesitmenytTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamNevTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamTipusTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				RamMeretTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				KepernyoNevTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				KepernyoAtmeroTextBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				AlkatreszComboBox.Visible = AlkatreszSzerintKeresCheckBox.Checked;
				AlkatreszComboLabel.Visible = AlkatreszSzerintKeresCheckBox.Checked;


				termekNevTextBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
				KategoriaComboBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
				GyartoTextBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
				ArTextBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
				GaranciaTextBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
				RaktarTextBox.Enabled = !AlkatreszSzerintKeresCheckBox.Checked;
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a komponensek megjelenitese kozben!");
			}
		}

		private void ProcesszorTeljesitmenyTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (ProcesszorTeljesitmenyTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(ProcesszorTeljesitmenyTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					ProcesszorTeljesitmenyTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void ProcesszorMagSzamTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (ProcesszorMagSzamTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(ProcesszorMagSzamTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					ProcesszorMagSzamTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void ProcesszorSzalSzamTextBox_TextChanged(object sender, EventArgs e)
		{	
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (ProcesszorSzalSzamTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(ProcesszorSzalSzamTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					ProcesszorSzalSzamTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void MerevlemezKapacitasTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (MerevlemezKapacitasTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(MerevlemezKapacitasTextBox.Text);
					Err = false;
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					MerevlemezKapacitasTextBox.Text = "";
				}
			}
			else
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void VideoKartyaTeljesitmenytTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (VideoKartyaTeljesitmenytTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(VideoKartyaTeljesitmenytTextBox.Text);
					Err = false;
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					VideoKartyaTeljesitmenytTextBox.Text = "";
				}
			}
			else
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void RamMeretTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (RamMeretTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(RamMeretTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					RamMeretTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void RamTipusTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (RamTipusTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(RamTipusTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					RamTipusTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void KepernyoAtmeroTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			int temp;
			if (KepernyoAtmeroTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
			{
				try
				{
					temp = Int32.Parse(KepernyoAtmeroTextBox.Text);
					feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
					if (Err)
					{
						MessageBox.Show("Hiba a szures kozben!");
					}
				}
				catch (Exception)
				{
					MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum tiz szamjegyig! Kerem probalja ujra figyelmesebben");
					KepernyoAtmeroTextBox.Text = "";
				}
			}
			else
			{
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
		}

		private void ProcesszorNevTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			try
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

		private void MerevlemezNevTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			try
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

		private void VideokartyaNevTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			try
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

		private void RamNevTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			try
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

		private void KepernyoNevTextBox_TextChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			try
			{
				Err = false;
				feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
				if (Err)
				{
					MessageBox.Show("Hiba a szures kozben!");
				}
			}
			catch (Exception)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

		private void AlkatreszComboBox_SelectedIndexChanged(object sender, EventArgs e)
		{
			// Az adott mezo szerinti szurest vegzo metodus
			feltolt(termekAdatok.AlkatreszekSzerint(ProcesszorNevTextBox.Text, ProcesszorTeljesitmenyTextBox.Text, ProcesszorMagSzamTextBox.Text, ProcesszorSzalSzamTextBox.Text, MerevlemezNevTextBox.Text, MerevlemezKapacitasTextBox.Text, VideokartyaNevTextBox.Text, VideoKartyaTeljesitmenytTextBox.Text, RamNevTextBox.Text, RamMeretTextBox.Text, RamTipusTextBox.Text, KepernyoNevTextBox.Text, KepernyoAtmeroTextBox.Text, AlkatreszComboBox.SelectedIndex, ref Err));
			if (Err)
			{
				MessageBox.Show("Hiba a szures kozben!");
			}
		}

        private void kartyahozAdButton_Click(object sender, EventArgs e)
        {
            ListViewItem item = TermekeklistView.FocusedItem;
            if (Convert.ToInt32(item.SubItems[5].Text) > 0)
            {
                bevasarloLista.Add(item);
                MessageBox.Show("A kert termek sikeresen a kartyahoz adva!");
            }
            else
            {
                MessageBox.Show("Ebbol a termekbol jelenleg nincs raktaron!");
            }
        }

        private void kartyaButton_Click(object sender, EventArgs e)
        {
            Kartya temp = new Kartya(bevasarloLista,this);
            temp.Show();
        }
    }
}


